Difference between generics and polymorphism
๋ต๋ณ์ ๋ฐ๋ฅด๋ฉด ์ ๋๋ฆญ์ โParametric polymorphismโ, ์ค๋ฒ๋ก๋ฉ์ ์ํ ๋คํ์ฑ์ โad-hoc polymorphismโ ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ํด๋์ค ๊ฐ ์์์ผ๋ก ๋์ ๋์คํจ์น์ ์ํ ๋คํ์ฑ์ โsubtype polymorphismโ ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๋ฒ์จ ์ธ ๊ฐ์ง ์ฉ์ด๊ฐ ๋์๋ค.
Parametric Polymorphism - generic
๋จ์ํ ์ฝ๋ ์ฌํ์ฉ์ฑ์ ๊ทน๋ํํ ๊ฐ๋ ์ด๋ค. ๋ฐ์ด๋๋ฆฌ๊ฐ ์๋ ์ฝ๋์ ํ ํ๋ฆฟ์ ํ๋ ๋ง๋ค์ด๋๊ณ ์ปดํ์ผ ํ์์ ํ์๋ก ํ๋ ์๋ก ๋ค๋ฅธ ํ์ ์ ๋ชจ๋ ๋ฒ์ ์ ๋ฐ์ด๋๋ฆฌ์ ์ ์ฌํ๋ค.
Ad-hoc Polymorphism - overloading
ad-hoc ์ด๋ผ๋ ๋ง ๋ป์ ๋ค์๊ณผ ๊ฐ๋ค.
์๋ฏธ๊ฐ ์กฐ๊ธ ์ ๋งคํ๊ธด ํ๋ค. ์ฌ๊ธฐ์์ ๊ทธ๋ฅ โ์ค๋ฒ๋ก๋ฉ์ ์ํโ ์ผ๋ก ๋์นํ์ฌ ์๊ฐํ์.
์๋ก ๋ค๋ฅธ ํ์ ์ ๋ค๋ฃจ๊ธฐ ์ํด์ ๋ง๋ จํ ๋ถ๋ฆฌ๋ ์ฝ๋๋ฅผ ์๋ฏธํ๋ค.
Subtype Polymorphism - dynamic dispatch
์์์ ์ํ ๋์ ๋์คํจ์น๋ฅผ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ผ๋ก, ์ธ์ด์ ๋ฐ๋ผ ๊ฐ์ํจ์, ๋ ํ์ดํ ํํ๋ก ์ ๊ณต์ด ๋๊ณ ์๋ค.